﻿namespace Wechat.MP.Auth.Configurations
{
    /// <summary>
    /// 
    /// </summary>
    public interface IWechatMpAuthConfiguration
    {
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#0
        /// </summary>
        const string OPEN_AUTH_URI = "https://open.weixin.qq.com/connect/oauth2/authorize#wechat_redirect";
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#1
        /// </summary>
        const string AUTH_TOKEN_URI = "https://api.weixin.qq.com/sns/oauth2/access_token";
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#2
        /// </summary>
        const string RENEW_AUTH_TOKEN_URI = "https://api.weixin.qq.com/sns/oauth2/refresh_token";
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#3
        /// </summary>
        const string USER_INFO_URI = "https://api.weixin.qq.com/sns/userinfo";
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/doc/xwei/xiaowei-openapi/device_bind_wxcode.html
        /// </summary>
        const string QR_AUTH_URI = "https://open.weixin.qq.com/connect/qrconnect";
        /// <summary>
        /// 详见文档 ---> https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/login/auth.code2Session.html
        /// </summary>
        const string SESSION_URI = "https://api.weixin.qq.com/sns/jscode2session";
        /// <summary>
        /// 
        /// </summary>
        string OpenAuthUri { get; set; }
        /// <summary>
        /// 
        /// </summary>
        string AuthTokenUri { get; set; }
        /// <summary>
        /// 
        /// </summary>
        string RenewAuthTokenUri { get; set; }
        /// <summary>
        /// 
        /// </summary>
        string UserInfoUri { get; set; }
        /// <summary>
        /// 
        /// </summary>
        string SessionUri { get; set; }
        /// <summary>
        /// 
        /// </summary>
        string QrAuthUri { get; set; }
    }
}
